package com.tangyuan.oss.ossAliyun.adapter;

import com.tangyuan.oss.adapter.StorageAdapter;
import com.tangyuan.oss.entity.FileInfo;
import org.springframework.web.multipart.MultipartFile;

import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * @Author: TangYuan
 * @Date: 2024/6/3 16:03
 * @描述: 阿里云文件管理适配器
 */
public class AliStorageAdapter implements StorageAdapter {
    /**
     * 列出所有桶
     * @return {@link List <String>}
     * @Date: 2024/6/3 下午2:01
     */
    @Override
    public List<String> getAllBucket() {
        List<String> bucketList = new ArrayList<>();
        bucketList.add("aliyun - 1");
        bucketList.add("aliyun - 2");
        bucketList.add("aliyun - 3");
        bucketList.add("aliyun - 4");
        return bucketList;
    }
    
    /**
     * 创建桶
     * @param bucketName 桶名
     * @Date: 2024/6/3 下午1:55
     */
    @Override
    public void createBucket(String bucketName) {
    
    }
    
    /**
     * 删除桶
     * @param bucketName 桶名
     * @Date: 2024/6/3 下午2:15
     */
    @Override
    public void deleteBucket(String bucketName) {
    
    }
    
    /**
     * 上传文件
     * @param multipartFile 文件流
     * @param bucketName    桶名
     * @param fileName      文件名
     * @Date: 2024/6/3 下午1:59
     */
    @Override
    public void uploadFile(MultipartFile multipartFile, String bucketName, String fileName) {
    
    }
    
    /**
     * 列出桶中所有文件
     * @param bucketName 桶名
     * @return {@link List<FileInfo>}
     * @Date: 2024/6/3 下午2:01
     */
    @Override
    public List<FileInfo> getAllFile(String bucketName) {
        return Collections.emptyList();
    }
    
    /**
     * 下载文件
     * @param bucketName 桶名
     * @param fileName   文件名
     * @return {@link InputStream}
     * @Date: 2024/6/3 下午2:15
     */
    @Override
    public InputStream downLoad(String bucketName, String fileName) {
        return null;
    }
    
    /**
     * 删除文件
     * @param bucketName 桶名
     * @param fileName   文件名
     * @Date: 2024/6/3 下午2:15
     */
    @Override
    public void deleteFile(String bucketName, String fileName) {
    
    }
    
    /**
     * 获取文件地址
     * @param bucketName 桶名
     * @param fileName   文件名
     * @return {@link String}
     * @Date: 2024/6/3 下午4:25
     */
    @Override
    public String getUrl(String bucketName, String fileName) {
        return "";
    }
}
